Gamma spectroscopy with a Raspberry Pi Pico 2

Using a small custom PCB, a Raspberry Pi Pico 2 microcontroller, a scintillator (typically NaI(Tl)) and SiPM you can build your own gamma spectrometer! The needed processing and multi-channel analyzer are all on-board so no external parts are needed!
This detector uses a silicon photomultiplier (SiPM) instead of the usual photomultiplier tubes that are more common with these types of DIY projects. This means that the whole assembly is much smaller and also safer, because no high voltages are needed! Also in contrast to projects like theremino you don't strictly need a computer or even an external sound card -- everything is self-contained. You can do standalone measurements using only a USB power cable and save the spectra to the Pico's flash storage or connect to your PC via the Serial-over-USB connection.
Hardware design has been done with EasyEDA and all the needed files for you to import the project as well as the schematic can be found on GitHub. There is also a Gerber file available for you to go directly to the PCB manufacturing step.
The software aims to be as simple as possible to understand and maintain; to achieve this I decided to use an off-the-shelf microcontroller - the Raspberry Pi Pico 2. This board can be programmed with the Arduino IDE over micro-USB and is powerful (dual core, good ADC, plenty of memory, ...) enough for the purpose and also exceptionally cheap.
A much more detailed and up-to-date look can be found in the GitHub repository at https://github.com/OpenGammaProject/Open-Gamma-Detector...
Here are some of the most important key facts:
Hardware design has been done with EasyEDA and all the needed files for you to import the project as well as the schematic can be found on GitHub. There is also a Gerber file available for you to go directly to the PCB manufacturing step.
The software aims to be as simple as possible to understand and maintain; to achieve this I decided to use an off-the-shelf microcontroller - the Raspberry Pi Pico 2. This board can be programmed with the Arduino IDE over micro-USB and is powerful (dual core, good ADC, plenty of memory, ...) enough for the purpose and also exceptionally cheap.
A much more detailed and up-to-date look can be found in the GitHub repository at https://github.com/OpenGammaProject/Open-Gamma-Detector...
Here are some of the most important key facts:
- Compact design: Total size 120 x 50 mm. Approx. 70.5 x 50 mm area for electronics and additional 49.5 x 50 mm to mount a scintillator.
- All-in-one: No external parts (e.g. sound card) required to record gamma spectra.
- Standalone spectra recordings on built-in flash.
- Easily programmable using drag-and-drop firmware files or the standard Arduino IDE.
- Low-voltage device: No HV needed like with photomultiplier tubes.
- Can use SiPMs in the voltage range of 27.5 V to 33.8 V.
- 4096 ADC channels with built-in 3 V voltage reference.
- Energy resolution of up to 7% @ 662 keV possible; highly dependent on your SiPM/scintillator assembly.
- Energy Mode: ~10 µs total dead time while measuring energy (default settings).
- Geiger Mode: ~1 µs total dead time without energy measurements (default settings).
- Low power consumption: ~15 mA @ 5 V with default firmware at normal background.
- Built-in ticker (buzzer) for audible pulse count rate output.
- Additional broken-out power pins and I2C, SPI and UART headers for custom parts (e.g. display, µSD card, etc.).
- Simple OLED support out of the box (SSD1306 and SH110x).
- Built-in True Random Number Generator.
Link to GitHub repo: https://github.com/OpenGammaProject/Open-Gamma-Detector
Also on Hackaday: https://hackaday.io/project/185211-all-in-one-gamma-ray-spectrometer
Buy a detector board: https://www.tindie.com/products/28827/
Updates from the author
NuclearPhoenix 7 months ago
The DNL issues, are obviously gone and with it the `cps correction` setting and some of the code in the event interrupt that had to handle the 4 error channels. Finally no more random peaks or missing channels in the spectrum!
Due to this combined with the more powerful processor cores (and FPU), the total dead time reduced significantly, which is probably the biggest change. With the same settings both on the Pico 1 and Pico 2 at default settings the dead time in energy mode halved (!) from ~24µs to ~12µs. The dead time in Geiger mode actually reduced more than that, it only registered ~1µs of dead time on the Pico 2, while the Pico 1 had about 4µs. This is of course only the software-measured dead time, there will still be a bit of a constant overhead on top of all of that, that cannot be measured in software. It's pretty safe to assume that this hasn't changed too much between the revisions, so the relative decrease in dead time is very significant.
The flash size is now triple that of the old version at 3 MB reserved for custom spectrum storage. This means you're able to record almost 3x the amount of spectra before running out of space, which is also huge.
The cherry on top of all of this is that power efficiency went up too. Without any further changes, the detector now consumes a good 10% less power than before according to my testing. I will also investigate the new sleep/dormant modes of the RP2350 as soon as there is support for these.
On a side note, I was able to overclock the Pico 2 to 250 MHz at the default 1V core voltage in the sketch, which is 25 MHz higher than with the Pico 2 (225 MHz). Therefore the `overclock` uf2 file will be clocked at 250 MHz from now on.
All of the hardware and software files are up to date now for the Pico 2 and development will continue on the Pico 2 from now on. The new board revision 4.2 is unchanged from the old one besides the switch to the Pico 2 and an updated BOM position for the out-of-stock buzzer. I will update the post on my website to also reflect these results.​
NuclearPhoenix 7 months ago
If you're interested in dosimetry and radiation protection, go check them out! They're fully open-source and currently working hard to publish all the info and details needed to reproduce the device.
https://github.com/OpenDosimeter/OpenDosimeter
git-logo.png (95kb)
NuclearPhoenix 7 months ago
​The RP2040 microcontroller that is being used in the original Raspberry Pi Pico finally got a worthy successor: the RP2350! And with it Raspberry Pi released a new and improved version of the Pico, fittingly named the Raspberry Pi Pico 2. This is a big change for the Open Gamma Detector project, because it is going to substantially improve device speed and analog readout.
It's a drop-in replacement part for the original Pico, which means the pinout and sizing is the same as well as the software should be compatible with any changes, which is actually pretty huge. Ideally, the original Arduino IDE sketch can be reused without any modifications and the used pins on the device also remain the same.
The new RP2350 boasts double the SRAM (520 KB), double the onboard flash (4 MB) and more powerful ARM Cortex-M33 cores. With it finally comes an FPU for faster floating point calculations and they actually fixed the DNL issues with the ADC boosting its performance by 0.5 ENOB! That means I can finally drop all of the botched code for the DNL issue compensation.
The chip also adds a ton of new security features and optional RISC-V cores, which is very exciting to see, but not really relevant for the project. However, this is going to make the Pico 2 and RP2350 hugely more popular for all kinds of different IOT projects as soon as a wireless version comes out.
What I'm excited to see as well is how the power draw changes for the whole device and if the switching regulator on the board changed, which could affect the noise levels on the board and most importantly, the noise at the ADC voltage reference. As far as I'm aware they also changed sleep and dormant modes, which should make them a lot more useful and more low-power compared to before. Anyways, the new core architecture will definitely change power draw, I'm sure. Let's hope it's for the better :D
I have pre-ordered a Pico 2 now and I'm going to have a look at it as soon as it arrives. I'm certain it'll be a substantial upgrade in all of the relevant aspects to the project. I'll keep you updated!
Check out the product brief from Raspberry Pi (PDF): https://datasheets.raspberrypi.com/pico/pico-2-product-brief.pdf
Let me know what you think and how this is going to affect all kinds of different projects!
NuclearPhoenix 1 year ago
The only other change is a different type of 22µF cap for bypassing, which now has an increased max voltage rating to better cope with DC bias. Other than that, everything remains the same.
pcb-back-20240329130115.png (73kb)
NuclearPhoenix 1 year ago
At 6x6mm, the board is slightly larger than a 4x4mm LYSO scintillator face, but it really couldn't be much smaller and it should work reasonably well regardless.
Overall, the layout of all boards is now tidier and, above all, the important connections are all a lot more clear better marked. I also reduced the distance between the individual SiPMs a little in the 2x2 array. The circuit is otherwise identical.
Here are the latest PCBs!
microfc6mm-20240216214036.png (130kb)
tiny3mm-20240216214036.png (31kb)
tiny6mm-20240216214036.png (30kb)
NuclearPhoenix 1 year ago
Because of these changes, your current settings and also the runtime stats of your device will be reset once you update! So be sure to note your settings beforehand and restore after the update if you changed anything.
There are also some smaller changes like a change in default settings (see below) and better formatting for the general info and fs info screens over the serial interface.
Full list of changes:
I think these are really cool changes and finally start to show the power of this device. Neither do you need a sound card or any additional hardware to generate spectra, you don't even need a computer all the time anymore with the stock firmware. Set and forget. Set up your serial recording, and then come back hours later to "download" the data from the device. Just copy paste the contents into a file on your system and open it in Gamma MCA or a compatible program to view in all its glory. No additional computing needed. Doesn't matter what you do with your computer. Just be sure to keep the device powered ;)
Enjoy!
NuclearPhoenix 1 year ago
With firmware version 4.1.0 the large button on the main board now took over the BOOTSEL button's job and changes the mode as well. BOOTSEL on the Pico will from now on always reboot the device into bootloader mode for easier updating. You can change the mode by pressing shortly on the other more accesible and larger button. Long-pressing on the button will toggle the buzzer on or off.
Also the display now reacts more quickly to reflect the change in mode by changing the screen after you pressed the button.
And last but not least, today I managed to break my record for my personal best achieved energy resolution. I used the same mushroom sample (Cs-137) that I always used before and got 7.4% @ 662keV, nice!
(gamma_mca_spectrum.png)
This is the configuration I used: 1x1" with 2x2 SiPMs like previously, but with a new detector main board.
(photo.jpg)
It's actually one of the pre-assembled boards, which interestingly slightly outperformed my hand-soldered version by almost half a percent lol
Cheers!
photo.jpg (1712kb)
NuclearPhoenix 1 year ago
https://www.tindie.com/products/28827/
This time they come in a nice black color with ENIG surface finish and all the necessary connectors pre-assembled too. As always you will have to get yourself a SiPM and scintillator as these are not included. The boards will need to be programmed at the first start as they don't come pre-loaded. If you're not sure how to do this, here is a quick guide (it's really easy): https://github.com/OpenGammaProject/Open-Gamma-Detector/tree/main/software#firmware-files
Cheers!​
NuclearPhoenix 1 year ago
Regarding the Tindie restock, I'm sorry for the seemingly endless delays. The boards are currently in production and I'm expecting them to be in stock again ready for shipping by early to mid January.
To keep you interested and as a sort of small additional teaser, here is a comparison between my "old" scintillator with only a single SiPM that I used for all spectra up to this day and a brand-new 1x1" crystal with the 2x2 SiPM array.
As you can see, the spectrum is a lot cleaner in total, the range is larger and the energy resolution is a lot better too. Keep in mind however, that this version costs at least around 100$ more than the "simpler" version, due to the added SiPMs and the larger, 4-layer array PCB.
The larger scintillator comes with some additional benefits such as greater efficiency and therefore also higher count rate. You don't need one as large as this, though. 18x30mm is also a great size already pretty capable.
NuclearPhoenix 1 year ago
Give it a try, it might even work on older board revisions, but your mileage may vary. Nothing can break, so just feel free to experiment. If you're not sure, just reset the settings afterwards and you're fine.
NuclearPhoenix 1 year ago
NuclearPhoenix 1 year ago
I did some more testing on the energy range and noise levels too and these are my (practical) results:
[comp1.png]
Can you see the difference? I'm sure you can. The new hardware produces a LOT cleaner spectra and if you look closely you can see the background plateau extends farther to the left after the 32 keV peak up to around 10 keV. This will be more visible in the next images. All of these spectra were recorded using the same crystal, same settings and everything. I recorded my mushroom sample, that's why I got these nice Cs-137 peaks.
[comp2.png]
As you can clearly see, the peaks are a bit cleaner in general and the measurable plateau extends farther to the left after the 32 keV peak all due to the lesser noise floor. I've now used SMA 8 for both of these spectra. You can also see the reduction in noise in the compton spectrum to the left of the photopeak.
I'm also still currently recording some new example spectra for GitHub and after that I'll check if the two modes of the SMPS on the Pico result in any changes and what averaging setting is the best for energy resolution. I'll keep reporting my findings of course.
Still waiting for the updated OSHWA certification, once that's done, the new PCBs will go into production for Tindie and I will update the PCB files one last time to update the cert mark. I think I already mentioned the updated Tindie price in one of the last posts: it will have to go up by 5 bucks to accomodate the 4L board and the extra components, so the price will be 64.99 USD. I think that's more than fair given all the added value :)
The Tiny SiPM breakout board will get a bit cheaper, it'll be around 1.00 or 1.49 USD. I'm also thinking about adding the temperature corrected standard MicroFC breakout board to the store. Let me know if you're interested in that!
Cheers!
comp1.png (128kb)
NuclearPhoenix 1 year ago
Most of the actual circuitry has been taken straight from the last revision with only minimal changes. So like I said in one of the last logs here on Hackaday, this is mostly a quality of life update and largely concerning the change of the PCB layout.
Here is a list of all significant changes to the electronics:
Admittedly, this is all a bit technical, but I guess you're here for the tinkering and the behind-the-scenes stuff anyways ;D
In short, what does this mean for you, the user?Well, first of all, you finally got a buzzer and an additional button, how nice is that? You also got a more reliable option to connect the SiPM if you so desire. The device should also be a bit more stable now in general. And on top of all of that, I got a noticeable improvement in energy resolution (up to 1%, but I have to do some more testing on that) and I was even able to get a usable spectrum down to about 10 keV due to the less noise!
There are two test spectra that I did that back what I just told you (only 30 minutes, so expect results to be a bit better with longer recordings).
Easily able to fully resolve the lower ~26keV peak of Am-241. Range goes down to about 10keV.Here are some renderings on how the final PCB looks like (with an OSHWA mark placeholder). I already have an assembled one here, but that's nothing worthy of showing off due to all the soldering and changes I did to it ;)
I am going to do some more testing for the Arduino sketch that runs on the Pico and I still have to implement the button and some other buzzer-related things. It already works totally fine and stable just like the old software, only some functions are missing and I want to do some more optimizations on top of that.
There will also be another batch of assembled PCBs on Tindie in a couple of weeks, this time the pin female headers on the board will also come pre-assembled in contrast to the last batch where they were left out. Price will probably need to go up like $5 per piece to compensate for the added parts and the 4L board, but I think that's more than fair given the number of improvements ;)
So stay tuned for more updates on the Tindie stock as well!
In addition to all of that, the PCB will also get a final, tiny update when I get the OSHWA certification again (just adding the mark to the silkscreen). There is still a lot to do for me, I'm going to slowly update everything here on Hackaday and on GitHub over the next weeks, I will keep you updated.
Have a nice week!
pcb-back.png (76kb)
gamma-mca-spectrum-1.png (40kb)
gamma-mca-spectrum.png (70kb)
NuclearPhoenix 1 year ago
If you want to use it, just connect your power to the "VCC" pad, ground to "GND" and then the SiPM anodes to the spectrometer. You can check the set voltage at the "C" pad on the PCB. If you don't want to use the extra circuitry, you can just solder your power straight to the "C" pad and not bother with the other circuitry. However, you'll still have to solder the low-pass filters for each SiPM, otherwise they won't work.
You can find all the files here: https://github.com/OpenGammaProject/MicroFC-SiPM-Array-Board
Let me know what you think!
sipm2-20231124183522.png (77kb)
NuclearPhoenix 1 year ago
At the moment we're looking into a possible hardware revision 4. This one mostly focusses on the PCB and component layout to improve shielding and optimize the total device size. There is a lot that can still be done in this regard and we'll test it thoroughly before release. In the best case this will keep on improving the energy resolution of the device and the new revision will also include some smaller quality of life improvements. Follow the project so you don't miss out on any updates.
On another note, the OGD is sold out on Tindie, so thank you all for your interest in this project and the support. You can still get some of the Tiny MicroFC breakout boards if you want, the sale is still on until the end of september.
Cheers!
NuclearPhoenix 1 year ago
https://www.tindie.com/stores/nuclearphoenix/
NuclearPhoenix 1 year ago
Link to the store page: https://www.tindie.com/products/31304/​​
Thanks to all the feedback and demand from you guys for the SiPM carrier boards. It's been long overdue to add these to Tindie so that you can get the PCBs together with the detector electronics.
NuclearPhoenix 1 year ago
It's a lost more compact and features plug-in (friction fit) slots for panel and display mounts. There's a default display mount for an SH1106 1.3 inch OLED screen and a solid panel cover. You can design your custom parts to fit your needs, especially with the front panel, and then just slot it in.
The detector main board is screwed in the bottom plate that is then attached to the top. All the screws are designed to be screwed into inserts and the large front section of the case can fit up to a 5x5x5 cm scintillator.
I just uploaded all the STL files to GitHub!
enclosure-panel2.jpg (1693kb)
enclosure-empty1.jpg (2013kb)
enclosure-empty2.jpg (1925kb)
NuclearPhoenix 1 year ago
Here is a new and updated revision of the MicroFC SiPM carrier board: It now has some extra circuitry for temperature gain compensation! The overall size of the PCB and the solder pads have not changed at all and the bias filtering is also still on there. In addition to that, you can also use it without any of the additional electronics on it too. Don't need temperature compensation or any of the filtering? Just leave out all the components on the back side and solder directly to the anode and cathode pads for the SiPM.
If you do want to use the compensation circuit, a new BOM, Gerber file and schematic have been uploaded to GitHub. Kitspace should update too in the next couple of days (hopefully). Here is a link to the repo: https://github.com/OpenGammaProject/MicroFC-SiPM-Carrier-Board
It works completely passively without any sort of user intervention. It's based on an NTC thermistor that sits on the back side of the PCB, which is a big plus for temperature accuracy since it's on the same board as the SiPM. It's also low-power enough so that there is no unnecessary self-heating of the PCB. Just be sure to increase the SiPM PSU voltage a little bit as the compensation circuit initially drops a couple of 100mV to increase the temperature range without any need for readjustment. And ideally, you'd want to set the correct voltage at around normal ambient temperature for the correct tracking range (e.g. ~29.5V @ 25C).
Most of the research and testing has been done by Sebastian D'Hyon, so big thanks to him.
Finally, attached are some screenshots on what the new board looks like.
Cheers!
sipm2-20230726202314.png (102kb)
NuclearPhoenix 1 year ago
This new version mostly just reduces code size and efficiency in the Arduino sketch. There are no changes on the usability part or the handling of the device in general. I dropped the akkoyun/Statistical library in favor for the more specific RobTillaart/RunningMedian lib. It's just a lot better suited for the job and will be even more handy in the future.
Cheers!
NuclearPhoenix 1 year ago
this newest firmware version is another quality of life update that improves general usability and a lot of the behind the scenes code. Most of the changes include the following:
- Almost 10% reduction in energy consumption (this result has been tested with an SSD1306 OLED)
- Slightly better timing accuracy with Gamma MCA: a few % less standard deviation for the cps value due to more accurate scheduling.
- The geiger mode display will now show the unit "kcps" if the measured cps is higher than 1000. This helps a lot with the limited line space and should be enough for most use cases.
- Possibly better higher cps behavior (not tested yet), because the first CPU core is now entirely free to process interrupts only. No other tasks run on this core anymore.
Enjoy!NuclearPhoenix 1 year ago
He posted on GitHub and the Gammaspectacular forums if you want to interact with him:
244955238-f614a85d-7548-498f-884f-0061c9d1af4e.jpg (199kb)
NuclearPhoenix 1 year ago
Link to the new GitHub repo:
https://github.com/OpenGammaProject/Tiny-MicroFC-Carrier-Board
Kitspace should be up soon, too!
sipm2-20230612220553.png (17kb)
NuclearPhoenix 1 year ago
you might have already seen the new firmware files on GitHub. With this new update, I added support for the SH1106-type OLED displays. This expands on the current support of SSD1306 screens.
Also, in this update I changed the way the ticker works in order to accomodate higher count rates. The way it used to work is by clicking on each and every detected pulse. This way, you could only go up to around 1000 cps until the buzzer just saturates. Also, due to the already high activity at background radiation (>20 cps or so), detecting changes was a bit harder.
That's why the ticker now only clicks at every 10th detected pulse. That way, you can get up to 10x the range for the buzzer without saturating. Also, stock background clicks are now way more relaxed.
https://github.com/OpenGammaProject/Open-Gamma-Detector/tree/main/software
NuclearPhoenix 1 year ago
In this video I'm using two tiny LYSO scintillators as a Lu-176 source. This isotope has two very well-known gamma peaks that are ideal for a very simple linear calibration.
NuclearPhoenix 1 year ago
Just connect your (passive!) buzzer between one of the broken-out digital pins and ground and enable the ticker in software. By default, digital pin 9 is used for this job ("RX" pin header), which obviously means that you cannot use the hardware UART connection and the ticker simultaneously. This pin assignment can be changed from within the Arduino IDE sketch.
The default PWM frequency for the buzzer is 3 kHz, which you can also change in the sketch. The actual click duration per gamma pulse can be set in runtime via the "set ticker <integer>" serial command. The number will set the duration in milliseconds. I'm using just "1" here, it's more than enough for me. This also means that audio output will saturate at 1000 cps in the worst case.
I also added new metrics to the device info page: "power cycle count" and "power-on hours". These are pretty much self-explaining and log the number of device reboots as well as the running time of the device in hours. They are logged in another file inside the same file system as the settings and only update at the device start and after every full hour of runtime.
Have fun!
NuclearPhoenix 1 year ago
I think it looks amazing!
a.jpg (176kb)
NuclearPhoenix 1 year ago
Other than that, nothing has changed and the dead time is still the same as with the last update that seemingly introduced some of these problems.
https://github.com/OpenGammaProject/Open-Gamma-Detector/tree/main/software
Have fun!
NuclearPhoenix 1 year ago
Here is a list of changes as always:
All the uf2 files for you to update the device can be found on GitHub right now. If you have any questions, suggestions or issues, feel free to send me a message or create an issue on GitHub.
NuclearPhoenix 1 year ago
You can get an output of each individual SiPM or just connect all of them in parallel via a jumper on the PCB. If you do that, you can use the board just like a single SiPM -- your detector won't know the difference. Using this "parallel mode" you can use the board with the Open Gamma Detector without any modifications.
All the hardware is fully open-source of course, head over to the GitHub repo for some more info: https://github.com/OpenGammaProject/MicroFC-SiPM-Array-Board
Attached is an image of a test measurement using a 6.6% NaI scintillator and a Cs-137 source. As you can see, we got to <8% energy resolution @ 662 keV, which is already pretty close to the specified resolution of the manufacturer. Needless to say, I'm quite happy with the results ;)
Maybe it would be possible to get every so slightly better (0.x%) with some additional EMI shielding and software tweaking.
1.PNG (173kb)
NuclearPhoenix 1 year ago
- New console function "set correction <toggle>" to manually disable the CPS correction. As described on GitHub, the 4 faulty ADC channels are discarded, but in order to not falsify the CPS measurement, they are appended to channel 0 again. However, this often leads to the vertical scaling in Gamma MCA not fitting correctly to the overall spectrum. Therefore, the correction can now be deactivated. The 4 channels are ignored anyways, so you will read ever so slightly lower total cps if you enable this function. (does not apply to geiger mode)
- Lots of bug fixes in the settings. If something doesn't work right away, I can only recommend that you reset the settings once and reboot the device.
- Bug fix for the DC bias subtraction which could lead to an integer overflow.
Enjoy!NuclearPhoenix 1 year ago
The way it was implemented before was just by adding up all the pulses in the spectrum and then dividing by the time it took to collect them. That made keeping track with high cps very unstable and made it almost impossible to change the value after letting it run for a long-ish time, i.e. it was extremely sluggish.
The displayed spectrum hasn't changed and still keeps running until a set number of pulses has been registered. The time it takes to do this is shown in the top right corner. Display refresh time is still one second by default.
Update files can be downloaded on GitHub: https://github.com/OpenGammaProject/Open-Gamma-Detector/tree/main/software
NuclearPhoenix 1 year ago
Anyways, a picture is worth a thousand words so here is a 30 minute Lu-176 spectrum done with the newest boards. You can see, the energy resolution @ 300 keV is already at <14% which is much better than before.
As always the complete, updated hardware and software can be downloaded from GitHub. Happy tinkering! ;)
NuclearPhoenix 2 years ago
After a few good hints and some tests, I simplified the amplifier circuit and lo and behold, the results are significantly better. I would say that's a win-win situation, yay!
More details about the circuit and hardware when I've finished everything, things can change until then. Here is a spectrum of my 2 small (4g) LYSO scintillators. Recorded over 30 minutes and lo and behold - energy resolution at 310 keV at about 14%. Have to test it again with a few higher energies, but that's way better than previously.
Power consumption is now around 15 mA without OLED (but that hardly needs anything extra), so the total power consumption is less than 100 mW now. Probably roughly half of it is still on the Pico, but I hardly optimized the software in this direction, so there is even more potential to save power. (Looking at you, low power challenge ;) )
Still needs to make some small changes to the circuitry and PCB, but this is going very much in the right direction.
Two small compromises I had to make for this:
hand, this means that it is much easier to handle and use (Rev 2 wasn't that user-friendly after all). On the other hand, of course, this also means that the energy range that can be achieved and the resolution (limited by the ADC) depend more heavily on the scintillator used. But that shouldn't be a problem at all if the scintillator isn't too small. I use an older 18 x 30mm NaI. It's not really small, but it's not particularly big either. Even the $60, 1" x 1" scintillators from China are already larger in volume.
Stay tuned for more updates in the next weeks, I think it's gonna be great, especially if you already liked the previous revision! ;D
spectrum-zoom.png (45kb)
spectrum-full.png (34kb)
NuclearPhoenix 2 years ago
All-in-all, expect at the very least a month until the new boards are available on Tindie and the Makerfabs store. Until then I will keep testing.
Also, while you're waiting, enjoy this $10 discount code on Tindie for the Rev2.x boards:
> D63852D2 <
The promotion will be active for two weeks, starting with tomorrow, 13-02-2023, and until 26-02-2023. There are also only a few boards left, so if too many people get one at once, I might have to refund your orders, sorry! :)
Thanks for reading!
NuclearPhoenix 2 years ago
Here's a link to Mouser: https://eu.mouser.com/ProductDetail/onsemi/MICROFC-60035-SMT-TR?qs=byeeYqUIh0NL1tLUEc9yUw%3D%3D
On another note, here is a quick update on the state of the project:
Unfortunately, a package with important parts from LCSC, I was waiting for quite some time, didn't arrive in time and actually got lost in shipping it turns out. I now have to wait for the replacement package from China, which will take some time. In the meantime I have produced some new PCBs, which I will test with the new parts. There are some great quality of life improvements already, so stay tuned for the new revision. Not going too much into detail here, but expect some progress updates a couple of weeks from now.
Please also feel free to leave some feedback! :)
NuclearPhoenix 2 years ago
And I also just wanted to let you know, that the Open Gamma Detector is now officially certified open hardware! :)
-> https://certification.oshwa.org/at000003.html
By the way, the project was also featured in the MagPi 124, awesome! Thanks to Rob and all the other great people over at the MagPi. :D
-> https://magpi.raspberrypi.com/issues/124/
-> https://magpi.raspberrypi.com/articles/open-source-gamma-spectrometer
I've also finally set up a Tindie Store where you can get a fully assembled detector board:
-> https://www.tindie.com/products/nuclearphoenix/open-gamma-detector/
I'm, by the way, also looking into building a new revision of the detector just now. I'm still waiting for parts to test the first changes, so expect some new updates some time after new year. Till then, merry Christmas and a happy new year! :)
Brian Tristam Williams 2 years ago
NuclearPhoenix 2 years ago
NuclearPhoenix 2 years ago
I did 3 separate dead time measurements, all of which ran for some time until the average didn't change anymore. You can see the results for yourself in the image below. It's amazing what you can squeeze out of the Pico without having to do much at all. ("Averaging" has been set to 1 in all of those cases)
The dead time almost halved in setting number 3! That's almost 110 kcps max in energy mode and ~360 kcps max in geiger mode without having to change anything except the two device settings in the Arduino IDE.Setting number 3 was the most I could get on my device. After that, increasing the CPU speed again would always result in instant crashes. In addition to that, the Pico also gets noticeably warmer than with stock settings, of course. It's not a problem at all, though. I don't know how this will affect the device in the long term, so take all of this with a grain of salt!
I compiled a default-device firmware for setup number 3, which is now just called the "overclocked" firmware. You can download it on GitHub just like the other two files: https://github.com/Open-Gamma-Project/Open-Gamma-Detector/tree/main/software
Please keep in mind that it works fine on the Raspberry Pi Pico I have installed here, but it might not run on yours. On the other hand, 250 MHz might not even be the limit on your Pico. You have to try it out for yourself and with the help of the Arduino IDE sketch, it's very simple to do so and you can't really brick your device via software. https://arduino-pico.readthedocs.io/en/latest/ide.html#cpu-speed
Enjoy!
NuclearPhoenix 2 years ago
This way you'll not have to worry about any of the Arduino IDE parts and installing this extra software, if you don't want to. The Raspberry Pi Pico, fortunately, allows you to program it very, very easily via the UF2 file approach. Enjoy!
NuclearPhoenix 2 years ago
By default, SSD1306 OLEDs are all supported without big changes to the firmware. Out of the box, 128 x 64 px displays work immediately and will be automatically used when plugged in. The rest of the device works as usual over the serial interface.
Here are some photos of my test run with two tiny LYSO scintillators that contain the radioactive isotope Lu-176. Although the display is tiny and the energy range pretty wide (up to ~3500 keV), you can clearly see the distinction between the two ~200 and ~300 keV peaks :)
20221015-172819.jpg (660kb)
NuclearPhoenix 2 years ago
Radium was about 160 cps overall, Na-22 about 650 cps. Both 30 minute measurements with brackground subtracted.
na-22.png (38kb)
NuclearPhoenix 2 years ago
You can find all the info - as usual - on GitHub. A Kitspace link will also be available very, very soon.
In addition to that, I also re-did the "old" MicroFC PCB. The generic bias filter is now optional (enable by soldering to VCC and GND and close the solder jumper JP1) and you can directly solder across the SiPM via the cathode C and anode A pads.
I also removed two caps as I don't think they were that useful after all and now the detector capacitance is lower too, yay!
See https://github.com/Open-Gamma-Project/MicroFC-SiPM-Carrier-Board
1753071664576118362.png (49kb)
3078071664576118375.png (20kb)
NuclearPhoenix 2 years ago
This includes wireless AP capability, connecting to existing wireless networks, simple web hosting, OTA updates (awesome!) and much more.-
Since the board is a complete drop-in replacement for the current non-W Pico, nothing changes from the hardware side of things. Some internal pins on the Pico board itself changed to make place for the wireless chip interface, but with some small-ish changes to the Arduino sketch the software is also compatible with the current version.
There is so much potential here for the future, but at the moment I'm not sure how to use the new wireless features of the Pico W. I'll have to come up with a realistic concept on the implementation and do some additional research. Theoretically it is also possible to do a lite version of Gamma MCA with live data from the spectrometer and host it on the Pico W itself so you only have to open a browser and look at the beautiful interface. However, I don't know how to integrate all the files needed into the Arduino sketch. I think everything else (like using an external uploader) would be a bit harder and I really don't want to make the device setup even more complicated.
So stay tuned for the next updates, this is really exciting for me!
NuclearPhoenix 2 years ago